home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
amok_lha
/
amok32.lha
/
TestBild
/
txt
/
Menu.mod
< prev
next >
Wrap
Text File
|
1993-08-15
|
12KB
|
312 lines
(*--------------------------------------------------------------------------
:Program. Menu.mod
:Author. Andreas Lüdtke
:Address. Stangestraße 11, D 2000 Hamburg 50
:Phone. 040/3905153
:History. V1.0, 01-Jan-90, Andreas Lüdtke
:Copyright. PD © Andreas Lüdtke 1990.
:Language. Modula-2
:Translator. M2Amiga 3.3d
:Imports. Screen.InitText, Andreas Lüdtke
:Contents. Implementationsmodul zur Initialisierung der Menüs des
:Contents. Testbildprogramms
---------------------------------------------------------------------------*)
IMPLEMENTATION MODULE Menu;
FROM SYSTEM IMPORT ADR, ADDRESS, LONGSET;
FROM Intuition IMPORT Menu, MenuPtr, menuEnabled, MenuItem,
MenuItemPtr, SetMenuStrip, ClearMenuStrip, WindowPtr, IntuiText,
IntuiTextPtr, MenuItemFlags, MenuItemFlagSet;
FROM Screen IMPORT InitText;
CONST
FP = 0; (* FrontPen Farbe *)
BP = 1; (* BackPen Farbe *)
TH = 10; (* Text Hoehe *)
LO = 0; (* Offset Text - linke Menuleiste *)
OT = 1; (* Offset TopEdge bei InitText-Prozedur *)
LMO = 10; (* Offset LeftEdge - Menü *)
PX = 3; MX = 3; XX = 3; YX = 3;
PBreite = 70; (* Projekt Menübreite *)
MBreite = 70; (* Muster Menübreite *)
XBreite = 80; (* X-Raster Menübreite *)
YBreite = 80; (* Y-Raster Menübreite *)
PItemB = 150; (* Projekt Itembreite *)
MItemB = 145; (* Muster Itembreite *)
XItemB = 75; (* X-Raster Itembreite *)
YItemB = 75; (* Y-Raster Itembreite *)
VAR
(* Projekt - Muster - X-Raster - Y-Raster *)
Menus : ARRAY [0..3] OF Menu;
(* Projekt: Titel - Interlace - Ende *)
PItem : ARRAY [0..2] OF MenuItem;
PText : ARRAY [0..2] OF IntuiText;
(* Muster: Invers - Linien - Punkte - Rechtecke - Kreise - Gtreppe *)
(* Farbtreppe - Schachbrett - TestBild *)
MItem : ARRAY [0..8] OF MenuItem;
MText : ARRAY [0..8] OF IntuiText;
(* X-Raster: 2 - 4 - 8 - 16 - 32 - 64 - 128 *)
XItem : ARRAY [0..6] OF MenuItem;
XText : ARRAY [0..6] OF IntuiText;
(* Y-Raster: 2 - 4 - 8 - 16 - 32 - 64 - 128 *)
YItem : ARRAY [0..6] OF MenuItem;
YText : ARRAY [0..6] OF IntuiText;
MPtr,temp : MenuPtr;
PROCEDURE SetMenu( VAR wp: WindowPtr);
BEGIN
IF SetMenuStrip( wp, MPtr) THEN END
END SetMenu;
PROCEDURE MenuNum( x : CARDINAL) : CARDINAL;
BEGIN
RETURN( x MOD 020H);
END MenuNum;
PROCEDURE ItemNum( x : CARDINAL) : CARDINAL;
BEGIN
RETURN(( x DIV 020H) MOD 020H);
END ItemNum;
PROCEDURE SubNum( x : CARDINAL) : CARDINAL;
BEGIN
RETURN( x DIV 0800H);
END SubNum;
PROCEDURE InitMenu (VAR m : Menu;
VAR mptr : MenuPtr;
text : ADDRESS;
ledge : INTEGER;
breite : INTEGER;
hoehe : INTEGER;
NextMenu : MenuPtr);
BEGIN
WITH m DO
leftEdge := ledge; topEdge := 0;
width := breite; height := hoehe;
menuName := text; flags := {menuEnabled};
firstItem := NIL; nextMenu := NextMenu;
jazzX := 0; jazzY := 0;
beatX := 0; beatY := 0;
END;
mptr:= ADR(m);
END InitMenu;
PROCEDURE InitItem (VAR mi : MenuItem;
ledge : INTEGER;
tedge : INTEGER;
breite : INTEGER;
hoehe : INTEGER;
Flags : MenuItemFlagSet;
IFill : ADDRESS;
SFill : ADDRESS;
CChar : CHAR) : MenuItemPtr;
BEGIN
WITH mi DO
leftEdge := ledge; topEdge := tedge;
width := breite; height := hoehe;
flags := Flags; mutualExclude:= LONGSET{};
subItem := NIL; nextItem := NIL;
itemFill := IFill; selectFill := SFill;
command := CChar;
END;
RETURN ADR(mi);
END InitItem;
BEGIN
(* ----------> Initialisierung der Menüstrukturen <---------- *)
InitMenu( Menus[0], MPtr, ADR("Projekt"), LMO, PBreite, 0,
ADR( Menus[1]));
InitMenu( Menus[1], temp, ADR("Muster"), LMO+PBreite, MBreite, 0,
ADR( Menus[2]));
InitMenu( Menus[2], temp, ADR("X-Raster"), LMO+PBreite+MBreite,
XBreite, 0, ADR( Menus[3]));
InitMenu( Menus[3], temp, ADR("Y-Raster"), LMO+PBreite+MBreite+XBreite,
YBreite, 0, NIL);
(* ----------> "Projekt"-Items initialisieren <---------- *)
InitText( FP, BP, PX, OT, PText[0], ADR(" Menütitel"));
Menus[0].firstItem:= InitItem( PItem[0], LO, 0, PItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, commSeq, checkIt,
menuToggle},
ADR( PText[0]), NIL, "M");
InitText( FP, BP, PX, OT, PText[1], ADR(" Interlace"));
PItem[0].nextItem:= InitItem( PItem[1], LO, 10, PItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, commSeq, checkIt,
menuToggle},
ADR( PText[1]), NIL, "H");
InitText( FP, BP, PX, OT, PText[2], ADR(" Ende !!!"));
PItem[1].nextItem:= InitItem( PItem[2], LO, 25, PItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, commSeq},
ADR( PText[2]), NIL, "E");
(* ----------> Muster Items initialisieren <------------ *)
InitText( FP, BP, MX, OT, MText[0], ADR(" Invers"));
Menus[1].firstItem:= InitItem( MItem[0], LO, 0, MItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt, menuToggle,
commSeq},
ADR( MText[0]), NIL, "I");
InitText( FP, BP, MX, OT, MText[1], ADR(" Linien"));
MItem[0].nextItem:= InitItem( MItem[1], LO, 15, MItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt, commSeq},
ADR( MText[1]), NIL, "L");
MItem[1].mutualExclude:= LONGSET{ 2..8};
InitText( FP, BP, MX, OT, MText[2], ADR(" Punkte"));
MItem[1].nextItem:= InitItem( MItem[2], LO, 25, MItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt, commSeq},
ADR( MText[2]), NIL, "P");
MItem[2].mutualExclude:= LONGSET{ 1,3..8};
InitText( FP, BP, MX, OT, MText[3], ADR(" Rechtecke"));
MItem[2].nextItem:= InitItem( MItem[3], LO, 35, MItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt, commSeq},
ADR( MText[3]), NIL, "R");
MItem[3].mutualExclude:= LONGSET{ 1..2,4..8};
InitText( FP, BP, MX, OT, MText[4], ADR(" Kreise"));
MItem[3].nextItem:= InitItem( MItem[4], LO, 45, MItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt, commSeq},
ADR( MText[4]), NIL, "K");
MItem[4].mutualExclude:= LONGSET{ 1..3,5..8};
InitText( FP, BP, MX, OT, MText[5], ADR(" Grautreppe"));
MItem[4].nextItem:= InitItem( MItem[5], LO, 55, MItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt, commSeq},
ADR( MText[5]), NIL, "G");
MItem[5].mutualExclude:= LONGSET{ 1..4,6..8};
InitText( FP, BP, MX, OT, MText[6], ADR(" Farbtreppe"));
MItem[5].nextItem:= InitItem( MItem[6], LO, 65, MItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt, commSeq},
ADR( MText[6]), NIL, "F");
MItem[6].mutualExclude:= LONGSET{ 1..5,7..8};
InitText( FP, BP, MX, OT, MText[7], ADR(" Schachbrett"));
MItem[6].nextItem:= InitItem( MItem[7], LO, 75, MItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt, commSeq},
ADR( MText[7]), NIL, "S");
MItem[7].mutualExclude:= LONGSET{ 1..6,8};
InitText( FP, BP, MX, OT, MText[8], ADR(" Testbild"));
MItem[7].nextItem:= InitItem( MItem[8], LO, 85, MItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt, checked,
commSeq},
ADR( MText[8]), NIL, "T");
MItem[8].mutualExclude:= LONGSET{ 1..8};
(* ----------> X-Raster Items initialisieren <------------ *)
InitText( FP, BP, XX, OT, XText[0], ADR(" 2"));
Menus[2].firstItem:= InitItem( XItem[0], LO, 0, XItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt},
ADR( XText[0]), NIL, 0C);
XItem[0].mutualExclude:= LONGSET{ 1..6};
InitText( FP, BP, XX, OT, XText[1], ADR(" 4"));
XItem[0].nextItem:= InitItem( XItem[1], LO, 12, XItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt},
ADR( XText[1]), NIL, 0C);
XItem[1].mutualExclude:= LONGSET{ 0,2..6};
InitText( FP, BP, XX, OT, XText[2], ADR(" 8"));
XItem[1].nextItem:= InitItem( XItem[2], LO, 22, XItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt},
ADR( XText[2]), NIL, 0C);
XItem[2].mutualExclude:= LONGSET{ 0..1,3..6};
InitText( FP, BP, XX, OT, XText[3], ADR(" 16"));
XItem[2].nextItem:= InitItem( XItem[3], LO, 32, XItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt, checked},
ADR( XText[3]), NIL, 0C);
XItem[3].mutualExclude:= LONGSET{ 0..2,4..6};
XStufe := 16;
InitText( FP, BP, XX, OT, XText[4], ADR(" 32"));
XItem[3].nextItem:= InitItem( XItem[4], LO, 42, XItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt},
ADR( XText[4]), NIL, 0C);
XItem[4].mutualExclude:= LONGSET{ 0..3,5..6};
InitText( FP, BP, XX, OT, XText[5], ADR(" 64"));
XItem[4].nextItem:= InitItem( XItem[5], LO, 52, XItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt},
ADR( XText[5]), NIL, 0C);
XItem[5].mutualExclude:= LONGSET{ 0..4,6};
InitText( FP, BP, XX, OT, XText[6], ADR(" 128"));
XItem[5].nextItem:= InitItem( XItem[6], LO, 62, XItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt},
ADR( XText[6]), NIL, 0C);
XItem[6].mutualExclude:= LONGSET{ 0..5};
(* ----------> Y-Raster Items initialisieren <------------ *)
InitText( FP, BP, YX, OT, YText[0], ADR(" 2"));
Menus[3].firstItem:= InitItem( YItem[0], LO, 0, YItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt},
ADR( YText[0]), NIL, 0C);
YItem[0].mutualExclude:= LONGSET{ 1..6};
InitText( FP, BP, YX, OT, YText[1], ADR(" 4"));
YItem[0].nextItem:= InitItem( YItem[1], LO, 12, YItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt},
ADR( YText[1]), NIL, 0C);
YItem[1].mutualExclude:= LONGSET{ 0,2..6};
InitText( FP, BP, YX, OT, YText[2], ADR(" 8"));
YItem[1].nextItem:= InitItem( YItem[2], LO, 22, YItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt},
ADR( YText[2]), NIL, 0C);
YItem[2].mutualExclude:= LONGSET{ 0..1,3..6};
InitText( FP, BP, YX, OT, YText[3], ADR(" 16"));
YItem[2].nextItem:= InitItem( YItem[3], LO, 32, YItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt, checked},
ADR( YText[3]), NIL, 0C);
YItem[3].mutualExclude:= LONGSET{ 0..2,4..6};
YStufe := 16;
InitText( FP, BP, YX, OT, YText[4], ADR(" 32"));
YItem[3].nextItem:= InitItem( YItem[4], LO, 42, YItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt},
ADR( YText[4]), NIL, 0C);
YItem[4].mutualExclude:= LONGSET{ 0..3,5..6};
InitText( FP, BP, YX, OT, YText[5], ADR(" 64"));
YItem[4].nextItem:= InitItem( YItem[5], LO, 52, YItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt},
ADR( YText[5]), NIL, 0C);
YItem[5].mutualExclude:= LONGSET{ 0..4,6};
InitText( FP, BP, YX, OT, YText[6], ADR(" 128"));
YItem[5].nextItem:= InitItem( YItem[6], LO, 62, YItemB, TH,
MenuItemFlagSet{ itemText, itemEnabled, highComp, checkIt},
ADR( YText[6]), NIL, 0C);
YItem[6].mutualExclude:= LONGSET{ 0..5};
END Menu.mod